home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 25
/
Cream of the Crop 25.iso
/
games
/
dcg408up.zip
/
WHATSNEW.TXT
< prev
Wrap
Text File
|
1997-03-05
|
19KB
|
509 lines
4.08 changes
Dated March 3, 1997
1. Added VOLUME( L, R ); to set the left and right volume
for Sound Blaster Pro or higher. Default is 12. See the
CONTROL script where <ALT>-V is handled for an example.
2. Fixed the script to move items from one player to another.
It turns out that SELECT( player.bp ) returned the index
of the item on the select list, instead of the index of
the selected item in the back pack. In most cases this is
the same value, but since a backpack can have empty slots,
and those slots are NOT shown in the select list, the
answer was not always the same. This applies also to the
case 'select( player.body )', which shows the worn items
and let's you select one of them.
The obvious fix was to change:
L3 = select( player.bp );
to:
L3 = select( player.bp );
L3 = player.bp.index; ! or L3 = curritem.index
but it failed because player.bp.index and curritem.index
were broken also. However, player.bp by itself returns
the index in numeric assignments, so this worked:
L3 = select( player.bp );
L3 = player.bp;
I decided to go ahead and fix the SELECT() call to return
the index of the selected item instead of the index into
the list so, so that after the L3 = select( player.bp )
statement, the values of L3, player.bp, player.bp.index
and curritem.index are all the same.
3. The foreach OBJECT loop was broken. It would loop only over
VISIBLE objects, even when you didn't specify VISIBLE. Note
that foreach NPC was working properly.
4. The RANDOM() routine wasn't properly initialized and returned
the same random sequence all the time. This isn't quite what
was happening, but it should work all the time now.
5. I incorporated the code into the CONTROL script that I had
given to lost-dragon for stacked objects when moving. That
way, if you have a table (furniture/thing) with some food
on top, you still can't walk over it. The old script allowed
you to walk over it because it saw only the FOOD, not the
furniture under it.
Dated February, 1997
1. Mode VH2 was added back in. The files in VH2FILES.ZIP
should be expanded if you wish to use this mode.
2. Mode VH3 is now supported, but the template files
(DCxxxVH3.PCX) are not provided. These templates will
be provided in a later upgrade.
3. The VHU mode tiles (added in 4.07) can now be used in
the original 640x480x256 mode (VHU) as well as in the
new modes VHV (800x600x256) and VHW (1024x768x256).
Only the TEMPLATES are needed (files DCxxxVHV.PCX and
DCxxxVHW.PCX). The VHU tiles are used for all 3 modes.
4. The volume setting for voice and music was fixed. In
a future release I will introduce volume controls to
the script language.
5. By default, MIDI files are assumed to follow Rolands
MT32 instrument standard. However, if the file DCMUSIC.IBK
is found at startup time, the instrument bank in that
file will be used to play MIDI files instead. DCGAMES
supplies 2 instrument banks (MT32.IBK containing the
Roland MT32 standard instruments and GMIDI.IBK containing
the General MIDI standard instruments). You should copy
one or the other files to DCMUSIC.IBK as needed.
6. In addition to startup DCMUSIC.IBK, the new script command
LOADIBK() can be used to load a instrument bank at any
point in time during game play. The instrument bank remains
loaded until another LOADIBK() is issued.
Example: LOADIBK( "GMIDI.IBK" );
7. New parameter -v tells the game driver to use VESA compatible
graphics modes instead of direct chipset access. Use -v if
you think you are having graphics board related problems.
8. The number of character tiles (in DCPEOPLE.VHx) and object
tiles (in DCOBJECT.VHx) was raised to 1024. The previous
limit was 512.
9. The new WAITCK() script command will wait for a specified
number of CLOCK TICKS (there are roughly 18 ticks in a
second). WAITCK() is similar to WAIT() in that it waits for
the specified amount of time OR till music stops playing.
10.The new TIMECK() script command will wait for a specified
number of clock ticks regardless of whether music is playing.
11. The new function TIMER will return the number of clock ticks
since midnight. It can be used when you don't want to WAIT()
for a specified amount of time, but you want to be able to
check a bit later to make sure at least a specified amount
of time has gone by.
12. The mouse is no longer required. If you don't have one
the game driver will let you continue on.
13. The HELP in the game driver was moved from WRITE/WRITELN to
a pop-up window.
14. The new function P_DOTEXT() was introduced. It works exactly
like DOTEXT() but the text strings are displayed inside the
current frame (as set by SET_FRAME()).
15. The SET_FRAME() routine will now store the image under the
frame and restore it when the text functions (PWRITE/PWRITELN
and P_DOTEXT) cause it to scroll.
16. The VIEWPCX, VIEWGIF and VIEWFLI functions will now NOT set
use the palette inside the file, instead displaying the image
using the current game driver's palette. However, if you want
to use the picture's palette, use the new parameter:
VIEWPCX( "filename.pcx", PALETTE );
17. The VIEWPCX, VIEWGIF and VIEWFLI functions can now display
their image centered inside the current FRAME as defined by
the last SET_FRAME() command. This allows you to display images
on top of other images or even anywhere on the screen.
VIEWPCX( FRAME, "filename.pcx" );
See the script file JIMMY.SCR for an example, and to see it
working go talk to Jimmy in the example game.
18. The files ANYFRAME.PCX and ANYCONV.PCX were added to be used
in conversations. Again, see the JIMMY.SCR example.
4.07 changes
1. A new mode called VHU that is 640x480x256 (same as
VH1) but the tiles are 48x48 in size (much bigger
and square). This mode will evolve into a variable
tile size mode for 5.x, with tiles 24x24, 48x48 and
72x72 in size. Note that this mode is in ALPHA
so you shouldn't use it. The tile files for VHU are
quite large (4MB total vs 1.5MB in VH1 for example)
and that doesn't include the animation tiles. When
I add animation, every character will support up
to 20 frames in VHU mode. This will make these files
HUGE. The format for VHU will probably by incompatible
with the format for the rest of the modes.
2. The ability to play "full screen" (the menu/stats
part on the right side disappears). You can control
it using: PAINT(SMALL); or PAINT(LARGE); in the
scripts. You can use the SPLIT function to find out
if the screen is currently in SPLIT (SMALL) mode.
3. The ability to "transfer" to another world immediatly,
rather than having to wait until the script finishes
execution.
teleport( IMMEDIATE, dest-world, dest-door|x,y );
4. Removed the text box at the bottom and replaced it
with a "control" bar. This bar includes a smaller
text area, a player's statistics and and the icon
bar. I'm still playing around with the exact size of
the text area and the stats.
5. Fixed text wraping for all text outputs, such as
WRITE/WRITELN (in the text box), PWRITE/PWRITELN
(in a PCX picture) and MSGBOX() (see below).
6. Added the ability to display a windows like box
with up to 3 buttons, like:
! Display a box with 2 buttons labeled Yes and No..
L0 = msgbox( QUESTION, 2,"Yes","No","Are you sure?" );
7. Changed the stats/menu boxes to much nicer boxes with
edges and other nice features. The stats/menu boxes are
stored in PCX images, and while you can modify them,
you should not alter their size, nor the title space
or the ICON bar at the bottom of each one.
8. INITPLAY.SCR now runs every time you start playing. It
is like the INITGAME script, but it runs every time,
not just at the begining of the game. You can use it
to set the palette, choose the type of interface
(large/small), etc., etc.
9. STOPPLAY.SCR new runs every time you stop playing. It
will display a DCGAMES "shareware" image, but you can
remove that code and put your own. This allows you to
do all kinds of house keeping before the game engine
quits.
10. There is a new "format" for the tile files (*.VHI,
*.VH1, etc.) that uses about 1/2 the current size.
A conversion program is included so no problem. If
you have your own tiles, just run "DCCNVT5G.EXE".
11. The SELECT() command now displays a pop-up box
instead of using the statistics area. This allows
you to do work in full screen mode w/out having to
switch to small screen mode just to have a menu
based interaction with an NPC. The pop-up box is
stored in DCLSTVHx.PCX (short) and DCLS2VHx.PCX
(long). If the available options exceed the space
available in the long form, multiple pages are
used (with a PgUp/PgDn notice at the bottom of the
list.
12. Included templates MSGBOX(), SELECT() and the
statistics/menu area for VHI, VH1 and VHU mode.
Other modes are not supported. The only other
mode I will support is VH2 (800x600) if I get
lot's of e-mail from people that absolutely
have to have it. Anything else (VLO, VH3, etc.)
is out.
13. The MOVE and COPY commands have been extended to
allow moves/copies to different members of the
party. The M)ove command is implemented in the
CONTROL script rougly as follows:
Ln = SELECT( player.bp ); ! Select an ITEM
Lm = SELECT( group ); ! Select destination
MOVE( player.bp, player(Lm) ); ! Move it
14. The READTEXT() command will now display text blocks
inside the PCX image provided in DCTXTVHx.PCX. If it
is not found, the text is still displayed in the text
area (backwards compatible), but the text area is way
too small to display full blocks of text.
You can also use SET_FRAME() and VIEWPCX/GIF() to
put an image on the screen, then call READTEXT() with
a second parameter of -1, to indicate that the image
and frame are already set, so DCTXTVHx.PCX is not used.
15. Extended the STATS() command to include the following:
stats( group ); ! Show group statistics
stats( player ); ! Show current player statistic
stats( player.bp ); ! Show current player's backpack
stats( player.body ); ! Show current player's worn items
stats( NEXT | PREV ); ! Show next (or previous) player's info
You can also show NPC stats, backpack and body, but that feature
is under development. It might not work just right just yet.
You can still use STATS( <numeric expression> );, which will
display the statistics for the given player in the group, and
using STATS; (no parameter) will just re-fresh the stats area.
Note that stats() does NOT switch to SMALL mode, but it does
"remember" what you last specified, so you can do this:
Ln = SPLIT; ! Remember
stats( player.bp ); ! Show inventory
paint( small ); ! SMALL mode (does nothing if already small)
<do stuff>
if not Ln then paint( large ); endif; ! Restore Large Mode
Other enhancements and bug fixes in 4.07
a) After a LOCATE, check npc.x/npc.y against pointx/pointy
to make sure you found an NPC.
b) Check to make sure there is land nearby before you can
exit a boat.
c) Allow boarding a boat from diagonal directions.
d) In battle, you could reference the invisible NPCs (that
disapear when the fight starts). You could also "fight"
with objects. These bugs have been fixed.
e) The VIEWPCX() function has been extended. If the picture
you want to display has the wrong number of colors (16 in
256 color mode or 256 in 16 color mode), a slower routine
is used to display the PCX. The 256 colors are "mapped" to
the closest of the 16 colors.
f) The ENDGAME routine was broken when invoked in the WORLDDEF
script. It worked in other scripts.
g) The code to stop an entry in WORLDDEF/@GET (using STOP instead
of CONTINUE) was not working. This was fixed.
4.06 changes
I think there was a bug in the text handling that
had to do with scrolling. I released this one just
a few days after 4.05 because of that bug, but I
can't remember what it was.
4.05 changes
DCPLAY.EXE will now look for file DCFNTVHI.FGF
which is the font file to be used in the game.
The file is in FastGraf Font format (FGF). For
low resolutions (VLO) games, it will use the
old ugly font which is stored as DCFNTVLO.FGF.
Other enhancements and fixes include:
a) Moved code that divides follower statistics
by half from the game driver to the script
FIGHTING/@0, so you now have control over
the follower's stats.
b) Instead of playing "Win" automatically when
you win a battle, it calls FIGHTING/@2 (new
entry point) so now you control what happens
when you kill all the monsters.
c) When using "foreach npc|object do", if you
change the current npc/object's location
inside the loop, sometimes you got funny
behaviour (the loop wouldn't visit every
npc or object, or it might visit the same
one twice).
d) When you use FIGHT(STOP);, the script will
NO-LONGER-STOP. This means you can add more
script code to handle running away, etc.
To get the old behaviour, just add a STOP;
right after the FIGHT(STOP) in your scripts.
Note that FIGHT; by itself (starting a fight)
still stop the script. Once you start a fight
a separate sequence is used.
e) Fixed a bug in POS(). It now correctly finds
the first occurance of a character in a string.
4.04 changes:
Fixed minor bug in 4.03 (pause,beep,pause) in
sound board detection routine.
New entrypoint into CONTROL.SCR handles NPC
animation (@5) when not fighting. It is called
once per turn (after the player's move).
NOTE: NOTE: NOTE: NPCs are no longer animated
by the game driver. If you have modified the
CONTROL script you MUST add the @5 entrypoint
and implement NPC animation for hostile monsters
or they will stop moving.
Includes new version of WORXLITE, PLAY.BAT and
the TSR.COM utility to allow help install/remove
the sound blaster driver. TSR.COM didn't properly
detach the accelerated clock interrupt, so time
went REALLY FAAAAAST after you played DCGAMES,
make sure you install the new PLAY.BAT!
New features include SWRITE/SWRITELN, a version
of WRITE/WRITELN that sends it's output to a
string variable instead of the screen:
object.name = SWRITELN( player.name, "'s book" );
Another new feature is PWRITE/PWRITELN, a version
of WRITE/WRITELN that writes into a displayed PCX
image. The SETFRAME command (new) defines the margins
within the PCX image.
! SETFRAME( picture, xof,yof,xof,yof,color );
SETFRAME( "BOOK1.PCX", 30, 30, 30, 30, 1 );
VIEWPCX ( "BOOK1.PCX" );
PWRITELN( "Title: ", object.name );
PWRITELN( "Once upon a time.." );
pause;
paint( window );
Two new functions will tell if you can SEE or
REACH (with your current mode of transportation)
from one spot to another. The LOS (line of sight)
and LOR (line of reach) functions, take 2 locations
and a set of landscape transparency values (for LOS)
or density values (for LOR). For example:
if LOS( npc, player ) then
! The monster can see the player..
endif;
if LOR( player, world.doorx(5), world.doory(5) ) then
writeln( "The door is within reach!" );
endif;
Full examples and function details can be found in
ADDENDUM.TXT, an addendum to the 4.00 documentation.
See also the file TEST.SCR which is invoked in the
game by pressing FKEY9. It tests LOS, LOR, SET_FRAME
and PWRITE/PWRITELN.
4.03 changes:
The file DCWORLD.EXE and DCPLAY.EXE are now
protected mode versions of the DCGAMES system.
They use the DOS4GW.EXE program (must be in
the same place as the executables). They will
now use all available protected mode memory
and are optimized for 386 processors, so they
don't work on older processors.
Worlds may now be up to 512KB in size (up from
64KB). Compiled scripts (SCO files) can now be
a lot larger, and a few other internal limits
are also extended.
I also modified the script language to return
the string values instead of numbers when the
following variables are assigned to a string
or displayed using write/writeln:
a) world.density(x,y) <- Returns string from the
[WORLD DENSITIES] entry in DCCTOKEN.DAT
b) world.block(x,y) <- Returns string from the
NAME field of the Tile record in DCBLOCKn.mde
where n=0-9 and mde = VHI, VH1, etc.
I also fixed a bug in the code that allowed you
to replace the landcaping file on the fly. It
was plain broken. Now you can have 2 sets of
landscaping tiles, one for darkness, one for
daylight and switch like this:
world.landcape = 1; ! Between 0 and 9 !
Finally, in order to make this protected mode
I had to extract the sound library and make it
into a TSR (because it's real-mode). To run
DCPLAY now you need a batch file that loads
and removes the TSR. See example file PLAY.BAT
This batch file marks memory (tsr i), loads the
WORXLITE tsr program, runs DCPLAY and removes
the WORXLITE tsr when DCPLAY ends. Note that
if you usually use the -S parameter because you
don't have a sound card, you can just run the
dcplay.exe program directly w/out loading the
worxlite program:
dcplay.exe -s
4.02 changes:
The utility 'LOADPAL.EXE' will load a NEOPAINT
palette (file.PAL) into a DCGAMES palette
(file.DAT). The default palette is DCPALET.DAT
and is loaded at game startup.
Inside the scripts, you can use the LOADPAL()
function to load an alternate palette. This
function can be used to implement day/night
as follows in the 'time' routine in CONTROL.SCR
if <sunrise> then
loadpal( "DCPALET.DAT" );
else
loadpal( "NIGHTPAL.DAT" );
endif;
You can also change the palette when you enter
a new world depending on the world type, for
example:
if world.type = CAVE then
loadpal( "CAVEPAL.DAT" );
elsif time > sunrise and time < sunset then
loadpal( "DCPALET.DAT" );
else
loadpal( "NIGHTPAL.DAT" );
endif;
I also fixed WORLD.INDEX to return a simple
number (like it did in 3.x). I broke it trying
to implement a variable that returns the STRING
name of the world file.
If you want to get the name of the world file
(w/out extension), use WORLD.SINDEX, which will
return "WORLDnnn" where nnn = 000 to 999.
4.01 changes:
Fixes a bug that causes the game driver to hang
after a battle when using the -s parameter.
Also, contains minor patches to the CONTROL script
to handle 3.01 style hidden and locked doors.